#ifndef DATAEXPORTCELLVISITOR_H_JM_20121129
#define DATAEXPORTCELLVISITOR_H_JM_20121129

// ##
#include "BoxDataTable.h"
#include "DataExportTarget.h"
// ## C++
#include <memory>

namespace jm4bbx {

	class  DataExportCellVisitor : public BoxDataTable::CellVisitor  {
	public:

		DataExportCellVisitor(DataExportTarget* box);

		void setContext(size_t row, size_t col) { row_ = row; col_ = col; }

		virtual void visit(BoxDataTable::ValueCell<int>* val);
		virtual void visit(BoxDataTable::ValueCell<std::string>* val);

	protected:
		DataExportTarget* box_;
		size_t row_;
		size_t col_;
	};

	typedef std::shared_ptr<DataExportCellVisitor> DataExportCellVisitorPtr;

} // namespace jm4bbx


#endif
